if (jQuery.browser.msie){
	document.getElementsByName = function(name, tag){
	    return getElementsByName_iefix(name, tag);
	};
}

var codProductDefault = '';
var idGeneradoRadio = '';
var rowIdRadio = '';

var avisadoTasa     = false;
var avisadoLimite   = false;
var alertValTasa    = false;
var alertValLimite  = false;
var generadoLimiteDefault = '';
var generadoTasaDefault = '';
var rowLimiteDefault = '';
var rowTasaDefault = '';

var ventanaImpresionOfertas = null;

var myColNames  = ['', '', '', 'Tasa', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'SubProducto', 'Divisa', '', 'Rango Minimo', '', '', 'Importe a Contratar', 'Cuota Aprox.'];
var myDataModel = [
                   {name : 'valSeleccion',			index : 'valSeleccion',			width : VAL_WIDTH.XSMALL, 		formatter: valSeleccionFormat, 		unformat: genericUnFormat, 	align: 'center', 	sortable:false},
                   {name : 'valCuotaAjust',			index : 'valCuotaAjust',		width : VAL_WIDTH.LSMALL, 		formatter: valCuotaAjustFormat, 	unformat: genericUnFormat, 	hidden:true, 	    sortable:false},
                   {name : 'valCuotaReal',			index : 'valCuotaReal',			width : VAL_WIDTH.SMALL, 		formatter: valCuotaRealFormat, 		unformat: genericUnFormat, 	hidden:true, 		sortable:false},
                   {name : 'valTasa',				index : 'valTasa' ,				width : VAL_WIDTH.VSMALL, 		formatter: valTasaFormat, 			unformat: genericUnFormat, 	align: 'center',	sortable:false},
                   {name : 'valTasaHdn',			index : 'valTasaHdn' ,			width : VAL_WIDTH.VSMALL, 		formatter: valTasaHdnFormat, 		unformat: genericUnFormat, 	hidden:true,		sortable:false},
                   {name : 'codPlazo',				index : 'codPlazo', 			width : VAL_WIDTH.VSMALL,		formatter: codPlazoFormat, 			unformat: genericUnFormat,	hidden:true, 		sortable:false},
                   {name : 'desPlazo',				index : 'desPlazo', 			width : VAL_WIDTH.VSMALL,		formatter: desPlazoFormat, 			unformat: genericUnFormat,	hidden:true, 		sortable:false},
                   {name : 'nivelaOferta',			index : 'nivelaOferta', 		width : VAL_WIDTH.VSMALL,		formatter: nivelaOfertaFormat, 		unformat: genericUnFormat,	hidden:true, 		sortable:false},
                   {name : 'contrata',				index : 'contrata', 			width : VAL_WIDTH.VSMALL,		formatter: contrataProdFormat,		unformat: genericUnFormat,	hidden:true, 		sortable:false},
                   {name : 'codProducto',			index : 'codProducto', 			width : VAL_WIDTH.VSMALL,		formatter: codProductoFormat, 		unformat: genericUnFormat,	hidden:true, 		sortable:false},
                   {name : 'codConfigProducto',		index : 'codConfigProducto', 	width : VAL_WIDTH.VSMALL,		formatter: codConfigProductoFormat, unformat: genericUnFormat,	hidden:true, 		sortable:false},
                   {name : 'familiaProducto',		index : 'familiaProducto', 		width : VAL_WIDTH.VSMALL,		formatter: familiaProductoFormat, 	unformat: genericUnFormat,	hidden:true,		sortable:false},
                   {name : 'valTipo',				index : 'valTipo', 				width : VAL_WIDTH.VSMALL,		formatter: tipoSubProductoFormat, 	unformat: genericUnFormat,	hidden:true,		sortable:false},
                   {name : 'valBin',				index : 'valBin', 				width : VAL_WIDTH.VSMALL,		formatter: binSubProductoFormat, 	unformat: genericUnFormat,	hidden:true,		sortable:false},
                   {name : 'idSubProducto',			index : 'idSubProducto', 		width : VAL_WIDTH.VSMALL,		formatter: idSubProductoFormat, 	unformat: genericUnFormat,	hidden:true,		sortable:false},
                   {name : 'codSubProducto',		index : 'codSubProducto', 		width : VAL_WIDTH.VSMALL,		formatter: codSubProductoFormat, 	unformat: genericUnFormat,	hidden:true,		sortable:false},
            	   {name : 'desProducto',			index : 'desProducto', 			width : VAL_WIDTH.MED,			formatter: desProductoFormat, 		unformat: genericUnFormat,	hidden:true, 		sortable:false},
            	   {name : 'desConfigProducto',		index : 'desConfigProducto', 	width : VAL_WIDTH.MED,			formatter: desConfigProductoFormat, unformat: genericUnFormat,	hidden:true, 		sortable:false},
            	   {name : 'desSubProducto',		index : 'desSubProducto', 		width : VAL_WIDTH.VMED,			formatter: desSubProductoFormat, 	unformat: genericUnFormat,	align: 'left',		sortable:false},
            	   {name : 'divisa',				index : 'divisa', 				width : VAL_WIDTH.VSMALL,		formatter: divisaFormat, 			unformat: genericUnFormat, 	align: 'center',	sortable:false},
            	   {name : 'rangoMax',				index : 'rangoMax', 			width : VAL_WIDTH.SMALL,		formatter: rangoMaxFormat, 			unformat: genericUnFormat, 	hidden:true,		sortable:false},
            	   {name : 'rangoMin',				index : 'rangoMin', 			width : VAL_WIDTH.XLSMALL,		formatter: rangoMinFormat, 			unformat: genericUnFormat, 	align: 'right',		sortable:false},
            	   {name : 'valLimiteReal',			index : 'valLimiteReal', 		width : VAL_WIDTH.SMALL,		formatter: valLimiteRealFormat, 	unformat: genericUnFormat, 	hidden:true, 		sortable:false},
            	   {name : 'valLimiteAjust',		index : 'valLimiteAjust', 		width : VAL_WIDTH.SMALL,		formatter: valLimiteAjustFormat, 	unformat: genericUnFormat, 	hidden:true, 		sortable:false},
            	   {name : 'valLimiteContrato',		index : 'valLimiteContrato', 	width : VAL_WIDTH.SMALL,		formatter: valLimiteContratoFormat, unformat: genericUnFormat, 	align: 'center', 	sortable:false},
            	   {name : 'valCuotaContrato',		index : 'valCuotaContrato',		width : VAL_WIDTH.LSMALL, 		formatter: valCuotaContratoFormat, 	unformat: genericUnFormat, 	align: 'right', 	sortable:false}
            	   ];

function setTurnOnReadonlyRadio(idGenerado, rowId){
	document.getElementById("arrayTasa"+"-"+idGenerado+"-"+rowId).setAttribute('readOnly','readonly'); 
	document.getElementById("arrayLimiteContrato"+"-"+idGenerado+"-"+rowId).setAttribute('readOnly','readonly');
}

function setTurnOffReadonlyRadio(idGenerado, rowId){
	//RDELOSREYES - Cambio GSI 26032013_019_Hermes Comportamental
	//document.getElementById("arrayTasa"+"-"+idGenerado+"-"+rowId).removeAttribute('readOnly'); //Se descomento la linea para prueba con GVERAM 2013-09-04 
	document.getElementById("arrayLimiteContrato"+"-"+idGenerado+"-"+rowId).removeAttribute('readOnly');
}

function setTitleRadio(obj, idGenerado, rowId){
	
	var tasa = document.getElementById("arrayTasa"+"-"+idGenerado+"-"+rowId).value;
	var cuotaReal = document.getElementById("arrayCuotaReal"+"-"+idGenerado+"-"+rowId).value;
	var cuotaAjust = document.getElementById("arrayCuotaAjust"+"-"+idGenerado+"-"+rowId).value;
	var cuotaContrat = document.getElementById("arrayCuotaContrato"+"-"+idGenerado+"-"+rowId).value;
	var nivelaOferta = document.getElementById("arrayNivelaOferta"+"-"+idGenerado+"-"+rowId).value;
	var contrataProd = document.getElementById("arrayContrataProd"+"-"+idGenerado+"-"+rowId).value;
	
	var limiteReal = document.getElementById("arrayLimiteReal"+"-"+idGenerado+"-"+rowId).value;
	var limiteAjust = document.getElementById("arrayLimiteAjust"+"-"+idGenerado+"-"+rowId).value;
	var limiteContrato = document.getElementById("arrayLimiteContrato"+"-"+idGenerado+"-"+rowId).value;
	
	var rangoMin = document.getElementById("arrayRangoMin"+"-"+idGenerado+"-"+rowId).value;
	var rangoMax = document.getElementById("arrayRangoMax"+"-"+idGenerado+"-"+rowId).value;
	var desConfigProd = document.getElementById("arrayDesConfigProd"+"-"+idGenerado+"-"+rowId).value;
	var desSubProducto = document.getElementById("arrayDesSubProducto"+"-"+idGenerado+"-"+rowId).value;
	
	if(isNaN(rangoMin)){
		rangoMin = '0.00';
	}
	
	if(isNaN(rangoMax)){
		rangoMax = '0.00';
	}
	
	if(nivelaOferta == '1'){
		nivelaOferta = 'Si';
	}else{
		nivelaOferta = 'No';
	}
	
	if(contrataProd == '1'){
		contrataProd = 'Si';
	}else{
		contrataProd = 'No';
	}
	
	if(FLAG_ADMIN_TITLE == 1) {
		obj.title = 'Cuota Real: '+cuotaReal+' \n'+
		'Cuota Ajustada: '+cuotaAjust+' \n'+
		'Cuota Contrato: '+cuotaContrat+' \n'+
		'Nivela Oferta: '+nivelaOferta+' \n'+
		'Contrata: '+contrataProd+' \n'+
		'Tasa: '+tasa+' \n'+
		'Configuracion Producto: '+desConfigProd+' \n'+
		'SubProducto: '+desSubProducto+' \n'+
		'Rango Minimo: '+rangoMin+' \n'+
		'Rango Maximo: '+rangoMax+' \n'+
		'Limite Real: '+limiteReal+' \n'+
		'Limite Ajustado: '+limiteAjust+' \n'+
		'Limite Contrato: '+limiteContrato;
	} else {
		obj.title = '';
	}
}

function roundaboutGrid(){
	if(document.getElementsByTagName("li")!=undefined && document.getElementsByTagName("li").length!=2) {
		
		var index = 0;
		if(codProductoContrato != ''){
			var arrayLI = document.getElementsByTagName("li");
			for ( var i = 0; i < arrayLI.length; i++) {
				if(arrayLI[i].id == 'li-'+codProductoContrato){
					index = i;
					break;
				}
			}
		}
		
    	$('ul').roundabout({shape: 'lazySusan', duration: 600, startingChild: index});
    }
}

function loadInitialProducts(){
	
	var indicatorInitial = document.getElementById('indicatorInitial').value;
	var miTabla = document.getElementById("tableMainBody");
	miTabla.innerHTML = "";
	
	if(indicatorInitial == ''){		
		tasaContrato = '';
		cuotaContrato = '';
		divisaContrato = '';
		importeContrato = '';
		codPlazoContrato = '';
		desPlazoContrato = '';
		codProductoContrato = '';
		desProductoContrato = '';
		contrataProdContrato = '';
		codSubProductoContrato = '';
		binSubProductoContrato = '';
		desSubProductoContrato = '';
		familiaProductoContrato = '';
	}	
	
	ConsultaActualAction.consultarProductosAjax(indicatorInitial, function(data){
		
		var arrayGeneral  = data.listGeneral;			
		miTabla.innerHTML = data.cadenaHTML;
		
		try {
			var frameConsultaActual = window.top.document.getElementsByName("frameConsultaActual")[0];
			var contentFrame = (frameConsultaActual.contentWindow || frameConsultaActual.contentDocument);
			
			if(parseFloat(data.contadorProducto) > 1){
				contentFrame.document.getElementById('txtNumProducto').innerHTML = data.contadorProducto+' productos a ofertar';
			}else if(parseFloat(data.contadorProducto) == 1){
				contentFrame.document.getElementById('txtNumProducto').innerHTML = data.contadorProducto+' producto a ofertar';
			}else{
				contentFrame.document.getElementById('txtNumProducto').innerHTML = 'No hay productos a ofertar';
			}
			/* Solicita: WENCESLAO PINILLOS wpinillos@bbva.com
			 * Asunto  : Cuotas y Reevaluacion 2014-06-23
			if ("N" == data.mostrarOfertasNoCliente) {
				contentFrame.document.getElementById("divIniciarSimulacion").style.display = "none";
				contentFrame.document.getElementById("divFinalizarSimulacion").style.display = "none";
			}
			*/
		} catch(exception) {
			//alert("Error: "+exception);
		}
			
		if(arrayGeneral.length > 0){
			codProductDefault = '';
			for(var z=0;z<arrayGeneral.length;z++){
				
				var arraySubProductos = arrayGeneral[z];
				mostrarTablaSubProd(arraySubProductos, arraySubProductos[0].idTable, myColNames, myDataModel);
				
				if(codProductDefault != '' && codProductDefault != arraySubProductos[0].codProducto){
					document.getElementById("li-"+codProductDefault).innerHTML += "<br>"; 
				}
				
				codProductDefault = arraySubProductos[0].codProducto;
				
				if(z == arrayGeneral.length-1){
					document.getElementById("li-"+codProductDefault).innerHTML += "<br>";
				}
			}
		}
		
		try {
			loadInfoContrato();
			
			//frk: cerrando el loading
			roundaboutGrid();
			closeLoading();
		} catch(exception) {
			//alert("Error: " + exception);
		}
	});	
}

function loadInfoContrato(){
	var frameConsultaActual = window.top.document.getElementsByName("frameConsultaActual")[0];
	var contentFrame = (frameConsultaActual.contentWindow || frameConsultaActual.contentDocument);
	var divFormalizaVisible = contentFrame.document.getElementById('divFormalizaVisible');
	var flagContrataSegmento = window.parent.document.getElementById("hdnContrataHermes").value;
	var flagSimulacion = window.parent.document.getElementById("hdnFlagSimulacion").value;
	var clienteReevaluado = window.parent.document.getElementById("hdnClienteReevaluado").value;
	
	if (contrataProdContrato == '1' && flagContrataSegmento == 'S' && "N" == flagSimulacion && "N" == clienteReevaluado){
		divFormalizaVisible.style.display = "";
	} else {
		divFormalizaVisible.style.display = "none";
	}

	if(importeContrato != '' && (''+importeContrato).indexOf('.') == -1){
		importeContrato = importeContrato+'.00';
	}
	
	if(cuotaContrato != '' && (''+cuotaContrato).indexOf('.') == -1){
		cuotaContrato = cuotaContrato+'.00';
	}
	
	if(familiaProductoContrato == FAMILIA_TARJETAS){
		//contentFrame.document.getElementById('cuentaCargo').disabled = true;
		contentFrame.document.getElementById('gestor').disabled = true;
		//RDELOSREYES 2013-04-04 Modificaciones del GSI - INICIO
		contentFrame.document.getElementById('tdNomPlazo').style.display = "none";
		contentFrame.document.getElementById('tdValPlazo').style.display = "none";
		/*
		contentFrame.document.getElementById('tdNomCuentaCargo').style.display = "none";
		contentFrame.document.getElementById('tdValCuentaCargo').style.display = "none";
		*/
		contentFrame.document.getElementById('tdNomFormaPago').style.display = "";
		contentFrame.document.getElementById('tdValFormaPago').style.display = "";
		contentFrame.document.getElementById('tdNomDiaLiquidacion').style.display = "";
		contentFrame.document.getElementById('tdValDiaLiquidacion').style.display = "";
		
		contentFrame.document.getElementById('tdNomDiaPago').style.display = "none";
		contentFrame.document.getElementById('tdValDiaPago').style.display = "none";
		contentFrame.document.getElementById('tdNomCodEstablecimiento').style.display = "none";
		contentFrame.document.getElementById('tdValCodEstablecimiento').style.display = "none";
		
		contentFrame.document.getElementById('tdNomGestor').style.display = "none";
		contentFrame.document.getElementById('tdValGestor').style.display = "none";
		
		contentFrame.document.getElementById('tdValTasa').colSpan = "3";
		//contentFrame.document.getElementById('tdValImporte').colSpan = "4";
		contentFrame.document.getElementById('tdValVendedor').colSpan = "4";
		
		//RDELOSREYES 2013-04-04 Modificaciones del GSI - FIN
	}else{
		//contentFrame.document.getElementById('cuentaCargo').disabled = false;
		contentFrame.document.getElementById('gestor').disabled = false;
		//RDELOSREYES 2013-04-04 Modificaciones del GSI
		contentFrame.document.getElementById('tdNomPlazo').style.display = "";
		contentFrame.document.getElementById('tdValPlazo').style.display = "";
		/*
		contentFrame.document.getElementById('tdNomCuentaCargo').style.display = "";
		contentFrame.document.getElementById('tdValCuentaCargo').style.display = "";
		*/
		
		contentFrame.document.getElementById('tdNomFormaPago').style.display = "none";
		contentFrame.document.getElementById('tdValFormaPago').style.display = "none";
		contentFrame.document.getElementById('tdNomDiaLiquidacion').style.display = "none";
		contentFrame.document.getElementById('tdValDiaLiquidacion').style.display = "none";
		
		contentFrame.document.getElementById('tdNomDiaPago').style.display = "";
		contentFrame.document.getElementById('tdValDiaPago').style.display = "";
		contentFrame.document.getElementById('tdNomCodEstablecimiento').style.display = "";
		contentFrame.document.getElementById('tdValCodEstablecimiento').style.display = "";
		
		contentFrame.document.getElementById('tdNomGestor').style.display = "";
		contentFrame.document.getElementById('tdValGestor').style.display = "";
		
		contentFrame.document.getElementById('tdValTasa').colSpan = "1";
		//contentFrame.document.getElementById('tdValImporte').colSpan = "1";
		contentFrame.document.getElementById('tdValVendedor').colSpan = "1";
		//RDELOSREYES 2013-04-04 Modificaciones del GSI - FIN
	}
	
	contentFrame.document.getElementById('hdnTasaContrato').value = tasaContrato;
	contentFrame.document.getElementById('hdnCuotaContrato').value = cuotaContrato;
	contentFrame.document.getElementById('hdnCodPlazoContrato').value = codPlazoContrato;
	contentFrame.document.getElementById('hdnImporteContrato').value = importeContrato;
	contentFrame.document.getElementById('hdnCodProductoContrato').value = codProductoContrato;
	contentFrame.document.getElementById('hdnFamiliaProductoContrato').value = familiaProductoContrato;
	contentFrame.document.getElementById('hdnCodSubProductoContrato').value = codSubProductoContrato;
	contentFrame.document.getElementById('hdnBinSubProductoContrato').value = binSubProductoContrato;

	contentFrame.document.getElementById('txtDivisaContrato').innerHTML = changeValueIsBlank(divisaContrato);
	contentFrame.document.getElementById('txtTasa').innerHTML = changeValueIsBlank(tasaContrato);
	contentFrame.document.getElementById('txtImporte').innerHTML = changeValueIsBlank(importeContrato);
	contentFrame.document.getElementById('txtPlazo').innerHTML = changeValueIsBlank(desPlazoContrato);
	contentFrame.document.getElementById('txtDesProducto').innerHTML = changeValueIsBlank(desProductoContrato);
	contentFrame.document.getElementById('txtDesSubProducto').innerHTML = changeValueIsBlank(desSubProductoContrato);
	
	contentFrame.document.getElementById('cuentaCargo').value = "";
	contentFrame.document.getElementById('gestor').value = "";
	contentFrame.document.getElementById('hdnDiaLiquidacion').value = "";
	contentFrame.document.getElementById('rangoLiquidacion').value = "";
	
	contentFrame.document.getElementById('diaPago').value = "";
	contentFrame.document.getElementById('codigoEstablecimiento').value = "";
	
}

function setTextEditable(idGenerado, rowId, nivelaOferta){
	if(idGeneradoRadio != '' && rowIdRadio != '' && (
	   idGeneradoRadio != idGenerado || rowIdRadio != rowId)){
	   //frk: vuelvo a colocar en readonly en anterior registro
	   setTurnOnReadonlyRadio(idGeneradoRadio, rowIdRadio);	
	}
	
	idGeneradoRadio = idGenerado;
	rowIdRadio = rowId;
	
	var radio = document.getElementById("arrayValSeleccion"+"-"+idGenerado+"-"+rowId);
	if(radio.checked){
		showImprimir(true);
		setTurnOffReadonlyRadio(idGenerado, rowId);
		
		if(nivelaOferta == '1'){
			viewProductCalculator(idGenerado, rowId, 'calculo', 'inicial');
		}else{
			//frk: en el caso que no tenga marcado el nivelaOferta seteamos manualmente los campos de Contrato
			
			codPlazoContrato = document.getElementById('plazo'+idGenerado).value;
			desPlazoContrato = document.getElementById("desplazo"+idGenerado).value;
			tasaContrato   = document.getElementById("arrayTasa"+"-"+idGenerado+"-"+rowId).value;
			divisaContrato = document.getElementById("arrayDivisa"+"-"+idGenerado+"-"+rowId).value;
			cuotaContrato = document.getElementById("arrayCuotaContrato"+"-"+idGenerado+"-"+rowId).value;
			importeContrato = document.getElementById("arrayLimiteContrato"+"-"+idGenerado+"-"+rowId).value;
			codProductoContrato = document.getElementById("arrayCodProducto"+"-"+idGenerado+"-"+rowId).value;
			desProductoContrato = document.getElementById("arrayDesProducto"+"-"+idGenerado+"-"+rowId).value;
			contrataProdContrato = document.getElementById("arrayContrataProd"+"-"+idGenerado+"-"+rowId).value;
			desSubProductoContrato = document.getElementById("arrayDesSubProducto"+"-"+idGenerado+"-"+rowId).value;
			binSubProductoContrato = document.getElementById("arrayBinSubProducto"+"-"+idGenerado+"-"+rowId).value;
			
			familiaProductoContrato = document.getElementById("arrayFamiliaProducto"+"-"+idGenerado+"-"+rowId).value;
			if(familiaProductoContrato == FAMILIA_TARJETAS){
				codSubProductoContrato = document.getElementById("arrayTipoSubProducto"+"-"+idGenerado+"-"+rowId).value;
			}else{
				codSubProductoContrato = document.getElementById("arrayCodSubProducto"+"-"+idGenerado+"-"+rowId).value;
			}			
					
			loadInfoContrato();
		}
		
	}else{
		showImprimir(false);
		setTurnOnReadonlyRadio(idGenerado, rowId);
	}	
}

function pressKeyProcess(field, idGenerado, rowId, e){
	
	var radioChecked = document.getElementById("arrayValSeleccion"+"-"+idGenerado+"-"+rowId).checked;
	if(radioChecked){
		
		//frk: se presiono el ESC
		var tecla = (document.all) ? e.keyCode : e.which; 
		if (tecla == 27) {
			showLoading();
			document.getElementById('indicatorInitial').value = '';
			viewProductCalculator(idGenerado, rowId, '', '');
		
		}else if (tecla == 13 || tecla == 9) { // se pulso enter o tab
			if(field == 'tasa'){
				calculateByTasa(idGenerado, rowId, e);
			}else if(field == 'limite'){
				calculateByLimite(idGenerado, rowId, e);
			}
		}
	}
}

function calculateByLimite(idGenerado, rowId, evnt){

	if(!avisadoLimite && !alertValTasa && (
	   (generadoLimiteDefault == '' && rowLimiteDefault == '') || 
	   (generadoLimiteDefault == idGenerado && rowLimiteDefault == rowId))){
		
		var nivelaOferta = document.getElementById("arrayNivelaOferta"+"-"+idGenerado+"-"+rowId).value;
		var radioChecked = document.getElementById("arrayValSeleccion"+"-"+idGenerado+"-"+rowId).checked;
		
		if(radioChecked){
		
			showLoading();
			
			var rangoMin 	= document.getElementById("arrayRangoMin"+"-"+idGenerado+"-"+rowId);
			var limiteAjust	= document.getElementById("arrayLimiteAjust"+"-"+idGenerado+"-"+rowId);
			var limiteContrato	= document.getElementById("arrayLimiteContrato"+"-"+idGenerado+"-"+rowId);			
			
			var plazo = document.getElementById('plazo'+idGenerado).value;
			var desplazo = document.getElementById('desplazo'+idGenerado).value;
			var tasa  = document.getElementById("arrayTasa"+"-"+idGenerado+"-"+rowId).value;
			var cuota = document.getElementById("arrayCuotaContrato"+"-"+idGenerado+"-"+rowId);
			
			var nLimiteContrato = parseFloat(limiteContrato.value);
			var nLimiteAjust    = parseFloat(limiteAjust.value);
			var nRangoMin	 	= parseFloat(rangoMin.value);
			
			if(isNaN(tasa) || tasa == ''){
				tasa = '0';
			}
			
			if(isNaN(nLimiteContrato) || nLimiteContrato == ''){
				limiteContrato.value = '0.00';
				nLimiteContrato = 0.00;
			}
			
			if(isNaN(nRangoMin) || nRangoMin == ''){
				nRangoMin = 0;
			}
			
			if(nLimiteContrato > nLimiteAjust){

				avisadoLimite = true;
				setTimeout('avisadoLimite=false',500);
				
				alert('El nuevo limite ('+nLimiteContrato+') esta fuera del intervalo configurado '+nRangoMin+' - '+nLimiteAjust+'.');
				
				alertValLimite = true;
				evnt.cancelBubble = true;
				generadoLimiteDefault = idGenerado;
				rowLimiteDefault = rowId;
				
		    	try{
		    	evnt.stopPropagation();
		    	}catch(excepie){}
				
		    	limiteContrato.value = limiteAjust.value;
		    	limiteContrato.focus();
				closeLoading();
				
			}else if(nLimiteContrato < nRangoMin){

				avisadoLimite = true;
				setTimeout('avisadoLimite=false',500);
				
				alert('El nuevo limite ('+nLimiteContrato+') esta fuera del intervalo configurado '+nRangoMin+' - '+nLimiteAjust+'.');
				
				alertValLimite = true;
				evnt.cancelBubble = true;
				generadoLimiteDefault = idGenerado;
				rowLimiteDefault = rowId;
		    	
		    	try{
		    	evnt.stopPropagation();
		    	}catch(excepie){}
				
		    	limiteContrato.value = limiteAjust.value;
		    	limiteContrato.focus();
				closeLoading();
				
			}else{
				avisadoLimite = false;
				alertValLimite = false;
				generadoLimiteDefault = '';
				rowLimiteDefault = '';
				
				if(nivelaOferta == '1'){
					viewProductCalculator(idGenerado, rowId, 'calculo', '');
				}else{
					ConsultaActualAction.calcularCuota(nLimiteContrato, plazo, tasa, function(data){
						cuota.value = data.cuota;
						closeLoading();
						
						//frk: en el caso que no tenga marcado el nivelaOferta seteamos manualmente los campos de Contrato
						codPlazoContrato = plazo;
						desPlazoContrato = desplazo;
						tasaContrato   = tasa;
						cuotaContrato = cuota.value;
						importeContrato = nLimiteContrato;
						divisaContrato = document.getElementById("arrayDivisa"+"-"+idGenerado+"-"+rowId).value;
						codProductoContrato = document.getElementById("arrayCodProducto"+"-"+idGenerado+"-"+rowId).value;
						desProductoContrato = document.getElementById("arrayDesProducto"+"-"+idGenerado+"-"+rowId).value;
						contrataProdContrato = document.getElementById("arrayContrataProd"+"-"+idGenerado+"-"+rowId).value;						
						desSubProductoContrato = document.getElementById("arrayDesSubProducto"+"-"+idGenerado+"-"+rowId).value;
						binSubProductoContrato = document.getElementById("arrayBinSubProducto"+"-"+idGenerado+"-"+rowId).value;
						
						familiaProductoContrato = document.getElementById("arrayFamiliaProducto"+"-"+idGenerado+"-"+rowId).value;
						if(familiaProductoContrato == FAMILIA_TARJETAS){
							codSubProductoContrato = document.getElementById("arrayTipoSubProducto"+"-"+idGenerado+"-"+rowId).value;
						}else{
							codSubProductoContrato = document.getElementById("arrayCodSubProducto"+"-"+idGenerado+"-"+rowId).value;
						}
						
						loadInfoContrato();
					});
				}
			}
		}
	}else{
		evnt.cancelBubble = true;
    	
    	try{
    	evnt.stopPropagation();
    	}catch(excepie){}
	}
}

function calculateByTasa(idGenerado, rowId, evnt){
	
	if(!avisadoTasa && !alertValLimite && (
	   (generadoTasaDefault == '' && rowTasaDefault == '') || 
	   (generadoTasaDefault == idGenerado && rowTasaDefault == rowId))){
	
		var nivelaOferta = document.getElementById("arrayNivelaOferta"+"-"+idGenerado+"-"+rowId).value;
		var radioChecked = document.getElementById("arrayValSeleccion"+"-"+idGenerado+"-"+rowId).checked;
		if(radioChecked){
			
			//frk: cambiamos el estado temporalmente, para evitar un bucle de alerts
			avisadoTasa = true;
			setTimeout('avisadoTasa=false',500);

			var plazo 	 = document.getElementById('plazo'+idGenerado).value;			
			var desplazo = document.getElementById('desplazo'+idGenerado).value;			
			var tasa 	 = document.getElementById("arrayTasa"+"-"+idGenerado+"-"+rowId);
			var cuota 	 = document.getElementById("arrayCuotaContrato"+"-"+idGenerado+"-"+rowId);		
			var rangoMin = document.getElementById("arrayRangoMin"+"-"+idGenerado+"-"+rowId).value;
			var rangoMax = document.getElementById("arrayRangoMax"+"-"+idGenerado+"-"+rowId).value;
			
			showLoading();
			
			var limiteAjust	= document.getElementById("arrayLimiteAjust"+"-"+idGenerado+"-"+rowId);
			var limiteContrato	= document.getElementById("arrayLimiteContrato"+"-"+idGenerado+"-"+rowId);		
			
			if(isNaN(rangoMax) || rangoMax == ''){
				document.getElementById("arrayRangoMax"+"-"+idGenerado+"-"+rowId).value = limiteAjust.value;
				rangoMax = limiteAjust.value;
			}
			
			if(isNaN(rangoMin) || rangoMin == ''){
				rangoMin = '0';
			}
			
			if(isNaN(tasa.value) || tasa.value == ''){
				tasa.value = '0';
			}
			
			ConsultaActualAction.calcularLimiteAjustado(cuota.value, plazo, tasa.value, function(data){

				if(parseFloat(data.limiteAjust) > parseFloat(rangoMax)){
					alert('El nuevo limite ('+data.limiteAjust+') esta fuera del intervalo configurado '+rangoMin+' - '+rangoMax+'.');
					
					alertValTasa = true;
					evnt.cancelBubble = true;
					generadoTasaDefault = idGenerado;
					rowTasaDefault = rowId;
			    	
			    	try{
			    	evnt.stopPropagation();
			    	}catch(excepie){}
					
					tasa.focus();
					closeLoading();
					
				}else if(parseFloat(data.limiteAjust) <= parseFloat(rangoMin)){
					alert('El nuevo limite ('+data.limiteAjust+') esta fuera del intervalo configurado '+rangoMin+' - '+rangoMax+'.');
					
					alertValTasa = true;
					evnt.cancelBubble = true;
					generadoTasaDefault = idGenerado;
					rowTasaDefault = rowId;
			    	
			    	try{
			    	evnt.stopPropagation();
			    	}catch(excepie){}
					
					tasa.focus();
					closeLoading();
					
				}else{
					alertValTasa = false;
					generadoTasaDefault = '';
					rowTasaDefault = '';
					
					limiteContrato.value = data.limiteAjust;
					if(nivelaOferta == '1'){
						viewProductCalculator(idGenerado, rowId, 'calculo', '');
					}else{
						ConsultaActualAction.calcularCuota(limiteContrato.value, plazo, tasa.value, function(data){
							cuota.value = data.cuota;
							closeLoading();
							
							//frk: en el caso que no tenga marcado el nivelaOferta seteamos manualmente los campos de Contrato
							
							codPlazoContrato = plazo;
							desPlazoContrato = desplazo;
							tasaContrato   = tasa.value;
							cuotaContrato = cuota.value;
							importeContrato = limiteContrato.value;
							divisaContrato = document.getElementById("arrayDivisa"+"-"+idGenerado+"-"+rowId).value;
							codProductoContrato = document.getElementById("arrayCodProducto"+"-"+idGenerado+"-"+rowId).value;
							desProductoContrato = document.getElementById("arrayDesProducto"+"-"+idGenerado+"-"+rowId).value;
							contrataProdContrato = document.getElementById("arrayContrataProd"+"-"+idGenerado+"-"+rowId).value;
							desSubProductoContrato = document.getElementById("arrayDesSubProducto"+"-"+idGenerado+"-"+rowId).value;
							binSubProductoContrato = document.getElementById("arrayBinSubProducto"+"-"+idGenerado+"-"+rowId).value;
							
							familiaProductoContrato = document.getElementById("arrayFamiliaProducto"+"-"+idGenerado+"-"+rowId).value;
							if(familiaProductoContrato == FAMILIA_TARJETAS){
								codSubProductoContrato = document.getElementById("arrayTipoSubProducto"+"-"+idGenerado+"-"+rowId).value;
							}else{
								codSubProductoContrato = document.getElementById("arrayCodSubProducto"+"-"+idGenerado+"-"+rowId).value;
							}
							
							loadInfoContrato();
						});
					}
				}
				
			});
		}
	}else{
		evnt.cancelBubble = true;
    	
    	try{
    	evnt.stopPropagation();
    	}catch(excepie){}
	}
}

function mostrarTablaSubProd(data, idTableForm, colNames, dataModel){
	
	jQuery("#"+idTableForm).jqGrid(
	{
		beforeSelectRow: function(){},
		data 	 	: data,
		datatype 	: "local",
		height   	: "100%",
		weight 	 	: 1000,
		colNames 	: colNames,
		colModel 	: dataModel,
		viewrecords : true,
		loadonce	: true,
		multiselect : false,			
		subGrid    	: false,
		footerrow  	: false,
		loadComplete :
           function (data) {
			try {
				if(data.rows[0].familiaProducto == FAMILIA_TARJETAS){
					jQuery("#"+idTableForm).hideCol("valCuotaContrato");
				}
			} catch(exception) {}
		}
	});
}

function showImprimir(flag) {
	var divImprimirVisible = parent.document.getElementById('divImprimirVisible');
	var hdnFlagSimulacion = parent.document.getElementById("hdnFlagSimulacion").value;
	if (flag && "N" == hdnFlagSimulacion) {
		divImprimirVisible.style.display = "";		
	} else {
		divImprimirVisible.style.display = "none";
	}
}

function resumeOffers() {
	window.open('maestro/imprimirOfertas.jsp','window_imprimirOfertas',"scrollbars=0,scrolling=no,top=" + 
			(screen.height - 200) + ",height=400,width=1000,left=" + ((screen.width - 1000)/2) + ",resizable=no");
	//window.print();
}